Without limiting the scope of the invention, its background is described in connection with microcontrollers and microprocessors.
In recent years, microprocessor- (or microcontroller-) based systems have been applied to almost every area of our lives. From automobiles to personal computers, and banking services to video games, microprocessor-based systems have proved to be flexible and useful.
Most microprocessor based systems are designed to sequentially process given sets of instructions. Typically, a microprocessor has a program counter to point to the next instruction to be processed, with the contents of the program counter determined either automatically or by execution of instructions (branch, call, return) that can alter the contents.
These conventional machines have proved useful in performing arithmetic and logical operations in step-by-step processing. The very strength of these conventional machines--the rigid and ordered processing of instructions--proves a limitation when what is desired is a system that mimics efficient and intuitive human handling of numerous competing tasks. As an analogy, take the situation of an office worker who has many projects and conflicting deadlines. Just as soon as a plan is made, another project may be assigned to the office worker, or it may suddenly be required that a project be completed immediately. Non-work related activities (such as eating, sleeping, and exercising), and emotional feelings also are taken into account. The efficient office worker deftly performs numerous tasks with clever timing and gets help as needed.
When an application for a microprocessor-based system requires responses similar to those of the efficient human worker, conventional machines do not present particularly compelling solutions. Parallel processing systems of SIMD and MIMD varieties, and fuzzy computers have been developed but further improvements and alternatives would be desirable.